package com.ship.dispatch.service;

import com.alibaba.fastjson.JSONObject;
import com.ship.common.business.service.BaseService;
import com.ship.dispatch.bean.SpArrangeSchemeDetail;
import com.ship.dispatch.bo.ItemStatisticsSimpleBo;

/**
* @author zhangyh
* @description 针对表【sp_arrange(货船排布)】的数据库操作Service
* @createDate 2023-11-03 10:17:22
*/
public interface SpArrangeSchemeDetailService extends BaseService<SpArrangeSchemeDetail> {

    /***
     * 船货统计数量
     * @param bo
     * @return
     */
    JSONObject dispatchArrangeCount(ItemStatisticsSimpleBo bo);

    /**
     * 年度船货统计分布饼状图
     * @param bo
     * @return
     */
    JSONObject yearDispatchArrangePieChart(ItemStatisticsSimpleBo bo);

    /**
     * 年度船货统计分布柱状图
     * @param bo
     * @return
     */
    JSONObject yearDispatchArrangeHistogram(ItemStatisticsSimpleBo bo);

    /**
     * 年度资源采购量
     * @param bo
     * @return
     */
    JSONObject yearDispatchArrangeBuyCount(ItemStatisticsSimpleBo bo);

    /**
     * 已完成运输量
     * @param bo
     * @return
     */
    JSONObject yearDispatchArrangeFinishCount(ItemStatisticsSimpleBo bo);

    /**
     * 资源完成率
     * @param bo
     * @return
     */
    JSONObject yearDispatchArrangeFinishRate(ItemStatisticsSimpleBo bo);

    /**
     * 船舶租金折线图（现货西航线）
     * @param bo
     * @return
     */
    JSONObject shipRentNowWestLineChart(ItemStatisticsSimpleBo bo);

    /**
     * 月度完成船货统计折线图
     * @param bo
     * @return
     */
    JSONObject yearDispatchMonthFinishGoodsLineChart(ItemStatisticsSimpleBo bo);

    /**
     * 月度完成船货统计柱状图
     * @param bo
     * @return
     */
    JSONObject yearDispatchMonthFinishGoodsHistogram(ItemStatisticsSimpleBo bo);

    /**
     * 待执行船货数量
     * @param bo
     * @return
     */
    JSONObject yearDispatchToExecuteGoodsCount(ItemStatisticsSimpleBo bo);

    /**
     * 执行中船货数量
     * @param bo
     * @return
     */
    JSONObject yearDispatchGoingGoodsCount(ItemStatisticsSimpleBo bo);

    /**
     * 已完成船货数量
     * @param bo
     * @return
     */
    JSONObject yearDispatchFinishGoodsCount(ItemStatisticsSimpleBo bo);

    /**
     * 贸易利润率趋势图
     * @param bo
     * @return
     */
    JSONObject yearDispatchTradeGetStatistics(ItemStatisticsSimpleBo bo);

    /**
     * 可用船舶天维度折线图
     * @param bo
     * @return
     */
    JSONObject yearDispatchShipDayLineChart(ItemStatisticsSimpleBo bo);

    /**
     * 可用船舶天维度柱状图
     * @param bo
     * @return
     */
    JSONObject yearDispatchShipHistogram(ItemStatisticsSimpleBo bo);

    /**
     * 可用船舶统计饼状图
     * @param bo
     * @return
     */
    JSONObject yearDispatchShipStatisticsPieChart(ItemStatisticsSimpleBo bo);

    /**
     * 可用船舶统计柱状图
     * @param bo
     * @return
     */
    JSONObject yearDispatchShipStatisticsHistogram(ItemStatisticsSimpleBo bo);

    /**
     * 船舶租金折线图（现货东航线）
     * @param bo
     * @return
     */
    JSONObject shipRentNowEastLineChart(ItemStatisticsSimpleBo bo);

    /**
     * 船舶租金折线图（六个月中长期）
     * @param bo
     * @return
     */
    JSONObject shipRentSixLineChart(ItemStatisticsSimpleBo bo);

    /**
     * 船舶租金折线图（十二个月中长期）
     * @param bo
     * @return
     */
    JSONObject shipRentTwelveLineChart(ItemStatisticsSimpleBo bo);

    /**
     * 船舶租金折线图（三十六个月中长期）
     * @param bo
     * @return
     */
    JSONObject shipRentThirtySixLineChart(ItemStatisticsSimpleBo bo);

    /**
     * 调度提醒任务
     */
    void dispatchExpireMessageSend();
}
